GEMS Telemetry

Get and parse data sent to GEMS website. Data from 2025-07-06 to present.

Get Data

Get data from website.

Use start_date parameter to limit download.

Add row, type, send and line number

Separate data into post times, met, status, and adv data

reshape rga data

Filter bad data before timestamping adv data

Calculate per-send means

Status

Last post was 2025-07-13 11:30:00

GEMS Status changes

timestamp status
2025-07-09 19:08:07 GEMS Start
2025-07-09 19:08:07 GEMS Starting
2025-07-11 04:29:46 Turbo Error Shutdown
2025-07-11 04:29:47 Turbo Error Shutdown
2025-07-11 04:29:48 Turbo Error Shutdown
2025-07-11 04:29:49 Turbo Error Shutdown
2025-07-11 04:29:49 Turbo Error Shutdown
2025-07-11 04:29:50 Turbo Error Shutdown
2025-07-11 04:29:51 GEMS Stop
2025-07-11 04:29:53 RGA Filament Off
2025-07-11 04:29:53 GEMS shutdown complete
2025-07-11 04:29:55 GEMS Starting
2025-07-11 11:19:14 GEMS started
2025-07-11 11:19:14 RGA Starting filament
2025-07-11 11:20:09 Turbo at speed
2025-07-11 16:09:08 Turbo Error Shutdown
2025-07-11 16:09:09 Turbo Error Shutdown
2025-07-11 16:09:10 Turbo Error Shutdown
2025-07-11 16:09:11 Turbo Error Shutdown
2025-07-11 16:09:12 Turbo Error Shutdown
2025-07-11 16:09:13 Turbo Error Shutdown
2025-07-11 16:09:14 Turbo Error Shutdown
2025-07-11 16:09:14 GEMS Stop
2025-07-11 16:09:16 RGA Filament Off
2025-07-11 16:09:16 GEMS shutdown complete
2025-07-11 16:09:20 GEMS Starting

last RGA reading was at 2025-07-13 11:29:47.375

Last ADV reading was at 2025-07-13 11:29:50.25

[1] "No incorrect lander timestamps!"

Teensy Temp

Junction temp of Surface teensy. Runs at 50C at room temp. >95C kills teensies.

Battery

`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'

Turbo

`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'

RGA

Scale for y is already present.
Adding another scale for y, which will replace the existing scale.

Oxygen

Carbon dioxide

Methane

Hydrogen sulphide

ADV

Pressure/Depth

ADV Correlation

ADV Amplitude

ADV Vertical Velocity

ADV Alongshore Velocity

ADV set up with x axis parallel to shore. Positive is North.

ADV Onshore velocity

Positive is offshore

IMU data

`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'
`geom_smooth()` using method = 'loess' and formula = 'y ~ x'

Data issues

Bad Packets

Garbled status or data packets. These need to be filtered out before timestamping. These should be caught on the lander by adding a checksum. Also need to check whether data is corrupted from ADV-lander, lander-surface, or surface-web.

Out of order packets

Not sure what causes this. Happening on the server side. Maybe parallel processing of POST requests? Handled by sorting each send by packet number.

Missing data

Missing data includes bad packets. Need to separate out.

Joining with `by = join_by(send)`
`summarise()` has grouped output by 'send'. You can override using the
`.groups` argument.

Average fraction missing per send in raw data 0.0637866

Average fraction of missing or bad data per send 0.0041325

Post times

timestamp send row_count
2025-07-13 08:20:00 778 500
2025-07-13 08:30:25 779 500
2025-07-13 08:40:00 780 500
2025-07-13 08:50:26 781 500
2025-07-13 09:00:25 782 500
2025-07-13 09:10:25 783 500
2025-07-13 09:20:00 784 500
2025-07-13 09:30:25 785 500
2025-07-13 09:40:25 786 500
2025-07-13 09:50:25 787 500
2025-07-13 10:00:25 788 500
2025-07-13 10:10:24 789 500
2025-07-13 10:20:25 790 500
2025-07-13 10:30:25 791 500
2025-07-13 10:40:25 792 500
2025-07-13 10:50:00 793 500
2025-07-13 11:00:24 794 500
2025-07-13 11:10:00 795 500
2025-07-13 11:20:25 796 500
2025-07-13 11:30:00 797 500

Lines per post